package top.rainf.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import top.rainf.domain.dto.AreaWithBlocks;
import top.rainf.service.IAreaService;
import top.rainf.support.R2;
import top.rainf.support.Result;
import top.rainf.domain.vo.Area;

import java.util.List;

/**
 * @author 星环
 * @date 2023/5/10 11:23:58
 * @description 分区控制器，每个表一个控制器，真有我的。
 */
@RestController
@RequestMapping("/area")
public class AreaController {
    @Autowired
    IAreaService areaService;


    @RequestMapping("/list")
    public Result list(){
        List<Area> list = areaService.getAreaList();
        return Result.success().addObj("list",list);
    }

    /**
     * 带板块列表的分区列表
     * @return json字符串
     */
    @RequestMapping("/list-all-with-blocks")
    public Result listAllWithBlocks(){
        List<AreaWithBlocks> areaWithBlocks = areaService.getAreaListWithBlocks();
        return Result.success().addObj("list",areaWithBlocks);
    }

    /**
     * 管理员后台列表用，虽然有通用抽取的可能，但是我直接莽了
     * @param page 当前分页
     * @param limit 一页几条
     * @return 啊？为了给layui的表格接口用，我没有用它的数据预处理方法。。懒哦
     */
    @RequestMapping("/list-back")
    public R2<Area> listBack(int page,int limit){
        //当然，每新有一种数据请求就新建一个服务
        //这就是MVC架构的好处
        List<Area> areaList = areaService.getFullAreaList(page,limit);
        R2<Area> areaR2 = new R2<>();
        areaR2.setCount(areaList.size());
        areaR2.setCode(0);
        areaR2.setData(areaList);
        //手拼是这样的
        return areaR2;
        //return Result.success().addObj("list", areaList);
    }
}
